home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / sprite / mklog < prev    next >
Encoding:
Text File  |  1990-08-08  |  2.2 KB  |  102 lines

  1. #!/sprite/cmds/perl
  2.  
  3. if ($#ARGV != 1) {
  4.     printf("$#ARGV\n");
  5.     printf("Usage: kdiff oldKernel newKernel\n");
  6.     exit;
  7. }
  8. if (! -e $ARGV[0]) {
  9.     die("File $ARGV[0] does not exist.\n");
  10. }
  11. if (! -e $ARGV[1]) {
  12.     die("File $ARGV[1] does not exist.\n");
  13. }
  14. open(fid, "strings $ARGV[0] |") || die ("Can't open pipe.\n");
  15. while (<fid>) {
  16.     if (/RCS/) {
  17.     ($d1,$file, $version) = split;
  18.     $versionArray{$file} = $version;
  19.     }
  20. }
  21.  
  22. open(fid, "strings $ARGV[1] |") || die ("Can't open pipe.\n");
  23. while (<fid>) {
  24.     if (/RCS/) {
  25.     ($d1, $file, $version) = split;
  26.     if (! defined($versionArray{$file})) {
  27.         $#newFiles++;
  28.         $newFiles[$#newFiles] = $file;
  29.     } elsif ($version != $versionArray{$file}) {
  30.         do SaveLog($file, $versionArray{$file}, $version);
  31.     }
  32.     $used{$file} = 1;
  33.     }
  34. }
  35. &PrintLog();
  36. if ($#newFiles > 0) {
  37.     printf("\nThe following files were added to the new kernel:\n\n");
  38.     for ($i = 0; $i <= $#newFiles; $i++) {
  39.     printf("$newFiles[$i]\n");
  40.     }
  41. }
  42.  
  43. $headerPrinted = 0;
  44. while (($file, $version) = each(%versionArray)) {
  45.     if (! defined($used{$file})) {
  46.     if ($headerPrinted == 0) {
  47.         printf(
  48.     "\nThe following files were not used in the new kernel:\n\n");
  49.         $headerPrinted = 1;
  50.     }
  51.     printf("$file\n");
  52.     }
  53. }
  54.  
  55. sub SaveLog {
  56.     local($stream);
  57.     local($start) = 0;
  58.     local($comment) = "";
  59.     local($file) = $_[0];
  60.     local($oldVersion) = $_[1];
  61.     local($newVersion) = $_[2];
  62.     open($stream, "rlog $file |") || die("Can't rlog $file\n");
  63.     while (<$stream>) {
  64.     ($f1, $f2, $f3, $f4, $f5) = split(' ');
  65.     if (/^revision/) {
  66.         if ($f2 eq $newVersion) {
  67.         $start = 1;
  68.         } elsif ($f2 eq $oldVersion) {
  69.         if ($start == 0) {
  70.             printf("File: $file\n");
  71.             printf("New version %s appears older than old version %s\n",
  72.             $newVersion, $oldVersion);
  73.             printf("Were the kernel arguments in the correct order?\n");
  74.         } else {
  75.             $changes{$comment} = $changes{$comment} . $file . "\n";
  76.         }
  77.         last;
  78.         }
  79.         next;
  80.     }
  81.     if (/^date:/) {
  82.         $_ = "$f2 $f5\n";
  83.     } elsif (/^[-]+$/) {
  84.         next;
  85.     }
  86.     if ($start) {
  87.         $comment = $comment . $_;
  88.     }
  89.     }
  90. }
  91.  
  92. sub PrintLog {
  93.     foreach $comment (keys %changes) {
  94.     printf("-------------------------------\n");
  95.     printf($changes{$comment});
  96.     printf($comment);
  97.     }
  98. }
  99.  
  100.  
  101.  
  102.